# General books and articles that cover the topic over all and are necessary for understanding the whole problem.
###############################################################################

@Manual{JavaVMSpecification1.0:1995,
  title =	"The {Java} Virtual Machine Specification",
  month =	aug,
  added-by =	"sti",
  URL =  	"http://java.sun.com/doc/vmspec/VMSpec.ps",
  keywords =	"java, virtual machine, bytecode",
  edition =	"1.0 Beta",
  annote =	"a virtual machine similar to UCSD p-code or smalltalk.
		 stack-machine. dynamic loading. direct support for
		 object orientation (e.g. virtual method calls)",
  organization = "Sun Microsystems",
  year = 	"1995",
}

@Book{JavaLanguageSpecificationv3.0:2005,
  author =	"James Gosling and Bill Joy and Guy Steele and Gilad
		 Bracha",
  address =	"Boston, Mass.",
  title =	"The {Java} Language Specification, Third Edition",
  publisher =	"Addison-Wesley",
  series =	"The Java Series",
  year = 	"2005",
}

@Article{CompilingJavaJustInTime:1997,
  author =	"Timothy Cramer and Richard Friedman and Terrence
		 Miller and David Seherger and Robert Wilson and Mario
		 Wolczko",
  title =	"Compiling {Java} Just in Time: Using runtime
		 compilation to improve {Java} program performance",
  journal =	"IEEE Micro",
  volume =	"17",
  number =	"3",
  pages =	"36--??",
  month =	may # "\slash " # jun,
  year = 	"1997",
  CODEN =	"IEMIDZ",
  ISSN = 	"0272-1732",
  bibdate =	"Tue Aug 12 12:35:06 MDT 1997",
  URL =  	"http://pascal.computer.org/mi/books/mi1997/pdf/m3036.pdf",
  acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
		 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
		 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
		 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
		 \path|beebe@acm.org|, \path|beebe@computer.org|
		 (Internet), URL:
		 \path|http://www.math.utah.edu/~beebe/|",
}

@InProceedings{FastEffectiveCodeGenerationInAJustInTimeJavaCompiler:1998,
  title =	"Fast, Effective Code Generation in a Just-In-Time Java
		 Compiler",
  author =	"Ali-Reza Adl-Tabatabai and Michal Cierniak and
		 Guei-Yuan Lueh and Vishesh M. Parikh and James M.
		 Stichnoth",
  year = 	"1998",
  bibdate =	"2010-01-10",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/pldi/pldi98.html#Adl-TabatabaiCLPS98",
  booktitle =	"PLDI",
  pages =	"280--290",
  URL =  	"http://doi.acm.org/10.1145/277650.277740",
}

@InProceedings{TheDesignAndImplementationOfACertifyingCompiler:1998,
  author =	"G. Necula and P. Lee",
  title =	"The {D}esign and {I}mplementation of a {C}ertifying
		 {C}ompiler",
  booktitle =	"Proc. of PLDI'98",
  year = 	"1998",
  publisher =	"ACM Press",
}

@InProceedings{DesignImplementationAndEvaluationOfOptimizationsInAJavaJustInTimeCompiler:1999,
  title =	"Design, Implementation, and Evaluation of
		 Optimizations in a Just-in-Time Compiler",
  author =	"Kazuaki Ishizaki and Motohiro Kawahito and Toshiaki
		 Yasue and Mikio Takeuchi and Takeshi Ogasawara and
		 Toshio Suganuma and Tamiya Onodera and Hideaki Komatsu
		 and Toshio Nakatani",
  year = 	"1999",
  bibdate =	"2002-12-17",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/java/java1999.html#IshizakiKYTOSOKN99",
  booktitle =	"Java Grande",
  pages =	"119--128",
  URL =  	"http://doi.acm.org/10.1145/304065.304111",
}

@Article{CacaoA64BitJavaVMJustInTimeCompiler:1997,
  author =	"Andreas Krall and Reinhard Grafl",
  title =	"{CACAO} -- {A} 64-bit Java{VM} Just-in-Time Compiler",
  journal =	"Concurrency: Practice and Experience",
  volume =	"9",
  number =	"11",
  pages =	"1017--1030",
  month =	nov,
  year = 	"1997",
  keywords =	"computational science \& engineering Java: simulation
		 \& modeling,",
}

@book{HandbookForJavaCacaoVirtualMachine:1996,
  title=		{Handbook for Java Cacao Virtual Machine},
  author=		{Andreas Krall and Reinhard Grafl et al.},
  publisher=	{http://www.cacaovm.org},
  year=			{1996},
  pages=		{116}
}

@Article{MarmotAnOptimizingCompilerForJava:2000,
  title =	"Marmot: an optimizing compiler for Java",
  author =	"Robert P. Fitzgerald and Todd B. Knoblock and Erik Ruf
		 and Bjarne Steensgaard and David Tarditi",
  journal =	"Softw, Pract. Exper",
  year = 	"2000",
  number =	"3",
  volume =	"30",
  bibdate =	"2003-11-25",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/journals/spe/spe30.html#FitzgeraldKRST00",
  pages =	"199--232",
}

@InProceedings{VerifiableAnnotationsForEmbeddedJavaEnvironments:2005,
  title =	"Verifiable annotations for embedded java
		 environments",
  author =	"Guangyu Chen and Mahmut T. Kandemir",
  bibdate =	"2006-02-15",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/cases/cases2005.html#ChenK05",
  booktitle =	"CASES",
  booktitle =	"Proceedings of the 2005 International Conference on
		 Compilers, Architecture, and Synthesis for Embedded
		 Systems, {CASES} 2005, San Francisco, California,
		 {USA}, September 24-27, 2005",
  publisher =	"ACM",
  year = 	"2005",
  editor =	"Thomas M. Conte and Paolo Faraboschi and William H.
		 Mangione-Smith and Walid A. Najjar",
  ISBN = 	"1-59593-149-X",
  pages =	"105--114",
  URL =  	"http://doi.acm.org/10.1145/1086297.1086312",
}

@Book{ModernCompilerImplementationInC:1998,
  author =	"Andrew W. Appel",
  title =	"Modern Compiler Implementation in {C}",
  publisher =	"Cambridge University Press",
  ISBN = 	"0-521-58390-X",
  year = 	"1998",
}

###############################################################################
# Now some references are presented that deal with intermediate representations especially with several SSA forms.
###############################################################################

@Article{EfficientlyComputingSSAFormAndTheControlDependenceGraph:1991,
  author =	"Ron Cytron and Jeanne Ferrante and Barry K. Rosen and
		 Mark N. Wegman and F. Kenneth Zadeck",
  title =	"Efficiently computing static single assignment form
		 and the control dependence graph",
  number =	"4",
  volume =	"13",
  month =	oct,
  added-by =	"msteiner",
  URL =  	"http://doi.acm.org/10.1145/115372.115320",
  added-at =	"Sat Jul 29 09:22:31 2006",
  annote =	"Classical paper on the SSA (Static Single Assignment)
		 form for intermediary code representation in
		 (optimizing) compilers. See
		 \url{http://www.cs.man.ac.uk/~jsinger/ssa.html} for
		 bibliography of SSA related work.",
  pages =	"451--490",
  journal =	"TOPLAS",
  year = 	"1991",
}

@Article{AVerifiableSSAProgramRepresentationForAgressiveCompilerOptimization:2006,
  author =	"Menon and Glew and Murphy and McCreight and Shpeisman
		 and Adl-Tabatabai and Petersen",
  title =	"A Verifiable {SSA} Program Representation for
		 Aggressive Compiler Optimization",
  journal =	"SPNOTICES: ACM SIGPLAN Notices",
  volume =	"41",
  year = 	"2006",
}

@Article{SafeTSAATypeSafeAndReferentiallySecureMobileCodeRepresentationBasedOnStaticSingleAssignmentForm:2001,
  author =	"Wolfram Amme and Niall Dalton and Jeffery von Ronne
		 and Michael Franz",
  title =	"{SafeTSA}: {A} Type Safe and Referentially Secure
		 Mobile-Code Representation Based on Static Single
		 Assignment Form",
  journal =	"ACM SIG{\-}PLAN Notices",
  volume =	"36",
  number =	"5",
  pages =	"137--147",
  month =	may,
  year = 	"2001",
  CODEN =	"SINODQ",
  ISSN = 	"0362-1340",
  bibdate =	"Sun Dec 14 09:18:26 MST 2003",
  bibsource =	"http://www.acm.org/sigplan/pldi/pldi2001/pldi_program.html;
		 http://portal.acm.org/",
  acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
		 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
		 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
		 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
		 \path|beebe@acm.org|, \path|beebe@computer.org|
		 (Internet), URL:
		 \path|http://www.math.utah.edu/~beebe/|",
}

@Misc{UsingTheSafeTSARepresentationToBoostThePerformanceOfAnExistingJavaVirtualMachine:2002,
  title =	"Using the Safe{TSA} Representation to Boost the
		 Performance of an Existing Java Virtual Machine",
  author =	"Wolfram Amme and Jeffery Von Ronne and Michael Franz",
  year = 	"2003",
  month =	dec # "~07",
  abstract =	"High-performance just-in-time compilers for Java need
		 to invest considerable effort before actual code
		 generation can commence. SafeTSA, a typed intermediate
		 representation based on SSA form, was designed to ease
		 this burden, decreasing the time required for dynamic
		 compilation, without sacrificing safety or code
		 quality.",
  citeseer-references = "oai:CiteSeerPSU:2678; oai:CiteSeerPSU:717751;
		 oai:CiteSeerPSU:284691; oai:CiteSeerPSU:554814;
		 oai:CiteSeerPSU:114398; oai:CiteSeerPSU:328282;
		 oai:CiteSeerPSU:89224",
  annote =	"Wolfram Amme (Friedrich-Schiller-Universit at Jena;
		 Institut f ur Informatik; Ernst-Abbe-Platz 1-4; D-07743
		 Jena , Germany); Jeffery Von Ronne (Information and
		 Computer Science; 127B Computer Science Trailer);
		 Michael Franz (Information and Computer Science; 444
		 Computer Science Bldg);",
  bibsource =	"OAI-PMH server at cs1.ist.psu.edu",
  language =	"en",
  oai =  	"oai:CiteSeerPSU:599324",
  rights =	"unrestricted",
  URL =  	"http://citeseer.ist.psu.edu/599324.html;
		 http://www.ics.uci.edu/~jronne/pubs/cpc2003-safetsa5.pdf",
}

###############################################################################
# The following documents now deal with the special topic of array bound check optimization.
# The order is chronologic from the real beginning to the most recent publications.
###############################################################################

@Article{CompilerAnalysisOfTheValueRangesForVariables:1977,
  author =	"W. Harrison",
  title =	"Compiler analysis of the value ranges for variables",
  journal =	"IEEE Transactions on Software Engineering",
  volume =	"SE-3",
  number =	"3",
  month =	may,
  year = 	"1977",
  keywords =	"data flow analysis,",
}

@InProceedings{ImplementationOfAnArrayBoundChecker:1977,
  title =	"Implementation of an Array Bound Checker",
  author =	"Norihisa Suzuki and Kiyoshi Ishihata",
  year = 	"1977",
  bibdate =	"2010-01-28",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/popl/popl77.html#SuzukiI77",
  booktitle =	"POPL",
  cdrom =	"POPL/00001437.PDF",
  pages =	"132--143",
  URL =  	"http://doi.acm.org/10.1145/512950.512963",
}

@Article{EconomicRangeChecksInPascal:1978,
  author =	"J. Welsh",
  title =	"Economic range checks in {Pascal}",
  journal =	"Software -- Practice \& Experience",
  volume =	"8",
  pages =	"85--97",
  year = 	"1978",
}

@Article{GlobalOptimizationBySuppressionOfPartialRedundancies:1979,
  author =	"E. Morel and C. Renvoise",
  title =	"Global optimization by suppression of partial
		 redundancies",
  journal =	"Communications of the ACM",
  volume =	"22",
  number =	"2",
  pages =	"96--103",
  month =	feb,
  year = 	"1979",
}

@InProceedings{OptimizationOfRangeChecking:1982,
  author =	"Victoria Markstein and John Cocke and Peter
		 Markstein",
  title =	"Optimization of Range Checking",
  booktitle =	"Proceedings of the {SIGPLAN} '82 Symposium on Compiler
		 Construction",
  address =	"Boston, Massachusetts",
  month =	jun # " 23--25,",
  year = 	"1982",
  pages =	"114--119",
}

@Article{OptimizationOfRangeChecking:1987,
  author =	"Victoria Markstein and Peter Markstein and John
		 Cocke",
  title =	"Optimization of range checking",
  journal =	"ACM SIG{\-}PLAN Notices",
  volume =	"39",
  number =	"4",
  pages =	"58--65",
  month =	apr,
  year = 	"2004",
  CODEN =	"SINODQ",
  ISSN = 	"0362-1340",
  bibdate =	"Tue Apr 12 09:38:13 MDT 2005",
  bibsource =	"http://portal.acm.org/",
  acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
		 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
		 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
		 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
		 \path|beebe@acm.org|, \path|beebe@computer.org|
		 (Internet), URL:
		 \path|http://www.math.utah.edu/~beebe/|",
}

@Article{AFreshLookAtOptimizingArrayBoundChecking:1990,
  author =	"Rajiv Gupta",
  title =	"A fresh look at optimizing array bound checking",
  journal =	"ACM SIG{\-}PLAN Notices",
  volume =	"25",
  number =	"6",
  pages =	"272--282",
  month =	jun,
  year = 	"1990",
  CODEN =	"SINODQ",
  ISSN = 	"0362-1340",
  bibdate =	"Sun Dec 14 09:15:53 MST 2003",
  bibsource =	"http://portal.acm.org/",
  acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
		 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
		 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
		 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
		 \path|beebe@acm.org|, \path|beebe@computer.org|
		 (Internet), URL:
		 \path|http://www.math.utah.edu/~beebe/|",
}

@Article{OptimizationOfArraySubscriptRangeChecks:1992,
  title =	"Optimization of Array Subscript Range Checks",
  author =	"Johnathan M. Asuru",
  journal =	"ACM Letters on Programming Languages and Systems",
  pages =	"109--118",
  month =	jun,
  year = 	"1992",
  volume =	"1",
  number =	"2",
}

@Article{OptimizingArrayBoundChecksUsingFlowAnalysis:1993,
  title =	"Optimizing Array Bound Checks Using Flow Analysis",
  author =	"Rajiv Gupta",
  journal =	"LOPLAS",
  year = 	"1993",
  number =	"1-4",
  volume =	"2",
  bibdate =	"2002-12-02",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/journals/loplas/loplas2.html#Gupta93",
  pages =	"135--150",
  URL =  	"http://doi.acm.org/10.1145/176454.176507",
}

@InProceedings{EliminationOfRedundantArraySubscriptRangeChecks:1995,
  title =	"Elimination of Redundant Array Subscript Range
		 Checks",
  author =	"Priyadarshan Kolte and Michael Wolfe",
  year = 	"1995",
  bibdate =	"2010-01-10",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/pldi/pldi95.html#KolteW95",
  booktitle =	"PLDI",
  pages =	"270--278",
  URL =  	"http://doi.acm.org/10.1145/207110.207160",
}

@InProceedings{EliminatingArrayBoundCheckingThroughDependentTypes:1998,
  title =	"Eliminating Array Bound Checking Through Dependent
		 Types",
  author =	"Hongwei Xi and Frank Pfenning",
  year = 	"1998",
  bibdate =	"2010-01-10",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/pldi/pldi98.html#XiP98",
  booktitle =	"PLDI",
  pages =	"249--257",
  URL =  	"http://doi.acm.org/10.1145/277650.277732",
}

@Article{OptimizingArrayReferenceCheckingInJavaPrograms:1998,
  title =	"Optimizing Array Reference Checking in Java Programs",
  author =	"Samuel P. Midkiff and Jos{\'e} E. Moreira and Marc
		 Snir",
  journal =	"IBM Systems Journal",
  year = 	"1998",
  number =	"3",
  volume =	"37",
  bibdate =	"2002-01-03",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/journals/ibmsj/ibmsj37.html#MidkiffMS98",
  pages =	"409--453",
}

@InProceedings{TowardsArrayBoundCheckEliminationInJavaTMVirtualMachineLanguage:1999,
  title =	"Towards array bound check elimination in Java $^{TM}$
		 virtual machine language",
  author =	"Hongwei Xi and Songtao Xia",
  bibdate =	"2006-02-15",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/cascon/cascon1999.html#XiX99",
  booktitle =	"CASCON",
  booktitle =	"Proceedings of the 1999 conference of the Centre for
		 Advanced Studies on Collaborative Research, November
		 8-11, 1999, Mississauga, Ontario, Canada",
  publisher =	"IBM",
  year = 	"1999",
  editor =	"Stephen A. MacKay and J. Howard Johnson",
  pages =	"14",
  URL =  	"http://doi.acm.org/10.1145/781995.782009",
}

@InProceedings{ABCDEliminatingArrayBoundsChecksOnDemand:2000,
  author =	"Rastislav Bodik and Rajiv Gupta and Vivek Sarkar",
  title =	"{ABCD}: eliminating array bounds checks on demand",
  booktitle =	"Proceedings of the ACM SIGPLAN 2000 Conference on
		 Programming Language Design and Implementation",
  year = 	"2000",
  pages =	"321--333",
  abstract =	"similar to SSI, has phi functions, and also pi
		 functions to rename at conditional branches and after
		 array bounds checks",
  URL =  	"http://doi.acm.org/10.1145/349299.349342",
}

@book{ProcessorWithAcceleratedArrayAcessBoundsChecking:2000,
  title=		{USPatent: Processor with Accelerated Array Acess Bounds Checking},
  author=		{Marc Tremblay and James M. O'Connor and William N. Joy},
  publisher=	{Sun Microsystems, Inc.},
  year=			{2000},
  pages=		{31}
}

@InProceedings{AFrameworkForOptimizingJavaUsingAttributes:2000,
  title =	"A framework for optimizing Java using attributes",
  author =	"Patrice Pominville and Feng Qian and Raja
		 Vall{\'e}e-Rai and Laurie J. Hendren and Clark
		 Verbrugge",
  bibdate =	"2006-02-15",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/cascon/cascon2000.html#PominvilleQVHV00",
  booktitle =	"CASCON",
  booktitle =	"Proceedings of the 2000 conference of the Centre for
		 Advanced Studies on Collaborative Research, November
		 13-16, 2000, Mississauga, Ontario, Canada",
  publisher =	"IBM",
  year = 	"2000",
  editor =	"Stephen A. MacKay and J. Howard Johnson",
  pages =	"8",
  URL =  	"http://doi.acm.org/10.1145/782034.782042",
}

@book{ApparatusAndMethodForArrayBoundsCheckingWithAShadowFile:2001,
  title=		{USPatent: Apparatus and Method for Array Bounds Checking with a Shadow File},
  author=		{Gautam Dewan},
  publisher=	{Sun Microsystems, Inc.},
  address=		{},
  year=			{2001},
  volume=		{6},
  pages=		{}
}

@InProceedings{DerivingPreconditionsForArrayBoundCheckElimination:2001,
  title =	"Deriving Pre-Conditions for Array Bound Check
		 Elimination",
  author =	"Wei-Ngan Chin and Siau-Cheng Khoo and Dana N. Xu",
  year = 	"2000",
  bibdate =	"2004-06-01",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/aplas/aplas2000.html#ChinKX00",
  booktitle =	"APLAS",
  pages =	"9--21",
}

@InProceedings{AComparisonOfArrayBoundsCheckingOnSuperscalarAndVLIWArchitectures:2002,
    author = {Chris Bentley and Scott A. Watterson and David K. Lowenthal},
    title = {A Comparison of Array Bounds Checking on Superscalar and VLIW Architectures},
    booktitle = {IEEE Workshop on Workload Characterization},
    year = {2002}
}

@Article{AComprehensiveApproachToArrayBoundsCheckEliminationForJava:2002,
  author =	"Feng Qian and Laurie Hendren and Clark Verbrugge",
  title =	"A Comprehensive Approach to Array Bounds Check
		 Elimination for {Java}",
  journal =	"Lecture Notes in Computer Science",
  volume =	"2304",
  pages =	"325--??",
  year = 	"2002",
  CODEN =	"LNCSD9",
  ISSN = 	"0302-9743",
  bibdate =	"Tue Sep 10 19:09:22 MDT 2002",
  bibsource =	"http://link.springer-ny.com/link/service/series/0558/tocs/t2304.htm",
  URL =  	"http://link.springer-ny.com/link/service/series/0558/bibs/2304/23040325.htm;
		 http://link.springer-ny.com/link/service/series/0558/papers/2304/23040325.pdf",
  acknowledgement = "Nelson H. F. Beebe, Center for Scientific
		 Computing, University of Utah, Department of
		 Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
		 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
		 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
		 \path|beebe@acm.org|, \path|beebe@computer.org|,
		 \path|beebe@ieee.org| (Internet), URL:
		 \path|http://www.math.utah.edu/~beebe/|",
}

@InProceedings{EliminationOfJavaArrayBoundsChecksInThePresenceOfIndirection:2002,
  author =	"Mikel Luj{\'a}n and John R. Gurd and T. L. Freeman and
		 Jos{\'e} Migue",
  title =	"Elimination of Java array bounds checks in the
		 presence of indirection",
  pages =	"76--85",
  booktitle =	"Proceedings of the 2002 joint {ACM}-{ISCOPE}
		 conference on Java Grande ({JGI}-02)",
  month =	nov # " ~3--5",
  publisher =	"ACM Press",
  address =	"New York",
  year = 	"2002",
}

@book{MethodForOptimizingArrayBoundsChecksInPrograms:2002,
  title=		{USPatent: Method for Optimizing Array Bounds Checks in Programs},
  author=		{Manish Gupta and Samuel Pratt Midkiff and Jose Eduardo Moreira},
  publisher=	{IBM Corporation},
  year=			{2002},
  pages=		{58}
}

@Article{ArrayBoundsCheckEliminationUtilizingAPageProtectionMechanism:2003,
  title=		{Array Bounds Check Elimination Utilizing a Page Protection Mechanism},
  author=		{Motohiro Kawahito},
  publisher=	{IBM Research, Tokyo Research Laboratory},
  journal=		{RT0550 Computer Science},
  address=		{1623-14, Shimotsuruma, Yamato, Kanagawa, 242-8502, Japan},
  year=			{2003},
  pages=		{6}
}

@Article{EfficientAndEffectiveArrayBoundChecking:2005,
  author =	"Thi Viet Nga Nguyen and Fran{\c{c}}ois Irigoin",
  title =	"Efficient and effective array bound checking",
  journal =	"ACM Transactions on Programming Languages and
		 Systems",
  volume =	"27",
  number =	"3",
  pages =	"527--570",
  month =	may,
  year = 	"2005",
  CODEN =	"ATPSDT",
  ISSN = 	"0164-0925",
  bibdate =	"Thu Jul 7 12:37:29 MDT 2005",
  bibsource =	"http://www.acm.org/pubs/contents/journals/toplas/",
  acknowledgement = "Nelson H. F. Beebe, University of Utah, Department
		 of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake
		 City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1
		 801 581 4148, e-mail: \path|beebe@math.utah.edu|,
		 \path|beebe@acm.org|, \path|beebe@computer.org|
		 (Internet), URL:
		 \path|http://www.math.utah.edu/~beebe/|",
  fjournal =	"ACM Transactions on Programming Languages and
		 Systems",
}

@Article{SymbolicBoundsAnalysisOfPointersArrayIndicesAndAccessedMemoryRegions:2005,
  author =	"Rugina and Rinard",
  title =	"Symbolic Bounds Analysis of Pointers, Array Indices,
		 and Accessed Memory Regions",
  journal =	"ACMTOPLAS: ACM Transactions on Programming Languages
		 and Systems",
  volume =	"27",
  year = 	"2005",
}

@InProceedings{ArrayBoundsCheckEliminationForTheJavaHotSpotTMClientCompiler:2007,
  title =	"Array bounds check elimination for the Java
		 HotSpot{\texttrademark} client compiler",
  author =	"Thomas W{\"u}rthinger and Christian Wimmer and
		 Hanspeter M{\"o}ssenb{\"o}ck",
  bibdate =	"2007-10-22",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/pppj/pppj2007.html#WurthingerWM07",
  booktitle =	"PPPJ",
  booktitle =	"Proceedings of the 5th International Symposium on
		 Principles and Practice of Programming in Java, {PPPJ}
		 2007, Lisboa, Portugal, September 5-7, 2007",
  publisher =	"ACM",
  year = 	"2007",
  volume =	"272",
  editor =	"Vasco Amaral and Luis Marcelino and Lu{\'i}s Veiga and
		 H. Conrad Cunningham",
  ISBN = 	"978-1-59593-672-1",
  pages =	"125--133",
  series =	"ACM International Conference Proceeding Series",
  URL =  	"http://doi.acm.org/10.1145/1294325.1294343",
}

@Misc{VerifiableRangeAnalysisAnnotationsForArrayBoundsCheckElimination:2007,
    author = {Jeffery Von Ronne and Kleanthis Psarris and David Niedzielski},
    title = {Verifiable Range Analysis Annotations for Array Bounds Check Elimination},
    year = {}
}

@InProceedings{APracticalAndPreciseInferenceAndSpecializerForArrayBoundChecksElimination:2008,
  title =	"A practical and precise inference and specializer for
		 array bound checks elimination",
  author =	"Corneliu Popeea and Dana N. Xu and Wei-Ngan Chin",
  bibdate =	"2008-04-04",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/pepm/pepm2008.html#PopeeaXC08",
  booktitle =	"PEPM",
  booktitle =	"Proceedings of the 2008 {ACM} {SIGPLAN} Symposium on
		 Partial Evaluation and Semantics-based Program
		 Manipulation, {PEPM} 2008, San Francisco, California,
		 {USA}, January 7-8, 2008",
  publisher =	"ACM",
  year = 	"2008",
  editor =	"Robert Gl{\"u}ck and Oege de Moor",
  ISBN = 	"978-1-59593-977-7",
  pages =	"177--187",
  URL =  	"http://doi.acm.org/10.1145/1328408.1328434",
}

@Misc{EfficientIntraproceduralArrayBoundChecking:2008,
  title =	"Efficient Intraprocedural Array Bound Checking",
  author =	"Thi Viet and Nga Nguyenfranc and Ois Irigoin and Ronan
		 Keryelllit and Enst Bretagne",
  year = 	"2008",
  month =	feb # "~07",
  abstract =	"Array bound checking is critical for code safety and
		 debugging but users are not ready to trade much
		 execution time for it. A considerable research work has
		 been carried out during the past 25 years but
		 experimental results are scarce. Commercial
		 implementations are limited to intraprocedural array
		 bound checking and are not really fulfilling user
		 expectations fot compilation and execution times.
		 Instead of designing a new specific algorithm, we
		 implemented two algorithms representative of the main
		 published approaches by re-using automatic
		 parallelization techniques available in PIPS, an
		 interprocedural parallelizer. The first algorithm is
		 based on redundant bound checking elimination. The
		 second one is based on insertion of unavoidable tests.
		 Results with the SPEC CFP95 benchmarks show that
		 commercial products could easily be improved using
		 automatic parallelization techniques and that user
		 expectations can be fulfilled for most benchmarks.
		 However, additional techniques would have be used to
		 obtain excellent results for all benchmarks. Our
		 approach to optimize bound checking can also be applied
		 to other imperative languages such as Fortran, Pascal,
		 Java when used for scientific applications.",
  bibsource =	"OAI-PMH server at citeseerx.ist.psu.edu",
  contributor =  "CiteSeerX",
  language =	"en",
  oai =  	"oai:CiteSeerXPSU:10.1.1.80.9869",
  relation =	"10.1.1.19.5510; 10.1.1.36.3970; 10.1.1.33.6934;
		 10.1.1.127.8252; 10.1.1.121.8818; 10.1.1.44.8796;
		 10.1.1.53.9852; 10.1.1.141.4211; 10.1.1.85.5471;
		 10.1.1.34.2234; 10.1.1.41.326; 10.1.1.18.3004;
		 10.1.1.30.1142; 10.1.1.34.7836",
  rights =	"Metadata may be used without restrictions as long as
		 the oai identifier remains attached to it.",
  subject =	"array bound checking; range checking; subscript out of
		 range; bound violation; program verification",
  URL =  	"http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.80.9869;
		 http://www.cri.ensmp.fr/classement/doc/A-316.ps",
}

@Article{SafeBoundsCheckAnnotations:2008,
  title =	"Safe bounds check annotations",
  author =	"Jeffery von Ronne and Andreas Gampe and David
		 Niedzielski and Kleanthis Psarris",
  journal =	"Concurrency and Computation: Practice and Experience",
  year = 	"2009",
  number =	"1",
  volume =	"21",
  bibdate =	"2009-05-07",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/journals/concurrency/concurrency21.html#RonneGNP09",
  pages =	"41--57",
  URL =  	"http://dx.doi.org/10.1002/cpe.1341",
}

@InProceedings{SpeculativeImprovementsToVerfifiableBoundsCheckElimination:2008,
  title =	"Speculative improvements to verifiable bounds check
		 elimination",
  author =	"Andreas Gampe and Jeffery von Ronne and David
		 Niedzielski and Kleanthis Psarris",
  bibdate =	"2008-09-23",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/pppj/pppj2008.html#GampeRNP08",
  booktitle =	"PPPJ",
  booktitle =	"Proceedings of the 6th International Symposium on
		 Principles and Practice of Programming in Java, {PPPJ}
		 2008, Modena, Italy, September 9-11, 2008",
  publisher =	"ACM",
  year = 	"2008",
  volume =	"347",
  editor =	"Lu{\'i}s Veiga and Vasco Amaral and R. Nigel Horspool
		 and Giacomo Cabri",
  ISBN = 	"978-1-60558-223-8",
  pages =	"85--94",
  series =	"ACM International Conference Proceeding Series",
  URL =  	"http://doi.acm.org/10.1145/1411732.1411745",
}

@InProceedings{ArrayBoundsCheckEliminationForJavaBasedOnSparseRepresentation:2009,
  title =	"Array Bounds Check Elimination for Java Based on
		 Sparse Representation",
  author =	"Keqiao Yang and Zeng Huang and Min Yang",
  bibdate =	"2010-04-23",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/sera/sera2009.html#YangHY09",
  booktitle =	"SERA",
  booktitle =	"Proceedings of the Seventh {ACIS} International
		 Conference on Software Engineering Research, Management
		 and Applications, {SERA} 2009, Haikou, China, 2-4
		 December 2009",
  publisher =	"IEEE Computer Society",
  year = 	"2009",
  editor =	"Roger Y. Lee and Wencai Du and Haeng-Kon Kim and
		 Shaochun Xu",
  ISBN = 	"978-0-7695-3903-4",
  pages =	"189--196",
  URL =  	"http://doi.ieeecomputersociety.org/10.1109/SERA.2009.11",
}

@Article{ArrayBoundsCheckEliminationInTheContextOfDeoptimization:2009,
  title =	"Array bounds check elimination in the context of
		 deoptimization",
  author =	"Thomas W{\"u}rthinger and Christian Wimmer and
		 Hanspeter M{\"o}ssenb{\"o}ck",
  journal =	"Sci. Comput. Program",
  year = 	"2009",
  number =	"5-6",
  volume =	"74",
  bibdate =	"2009-06-15",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/journals/scp/scp74.html#WurthingerWM09",
  pages =	"279--295",
  URL =  	"http://dx.doi.org/10.1016/j.scico.2009.01.002",
}

@InProceedings{AVerifiableControlFlowAwareConstraintAnalyzerForBoundsCheckElimination:2009,
  title =	"A Verifiable, Control Flow Aware Constraint Analyzer
		 for Bounds Check Elimination",
  author =	"David Niedzielski and Jeffery von Ronne and Andreas
		 Gampe and Kleanthis Psarris",
  bibdate =	"2009-08-20",
  bibsource =	"DBLP,
		 http://dblp.uni-trier.de/db/conf/sas/sas2009.html#NiedzielskiRGP09",
  booktitle =	"SAS",
  booktitle =	"Static Analysis, 16th International Symposium, {SAS}
		 2009, Los Angeles, {CA}, {USA}, August 9-11, 2009.
		 Proceedings",
  publisher =	"Springer",
  year = 	"2009",
  volume =	"5673",
  editor =	"Jens Palsberg and Zhendong Su",
  ISBN = 	"978-3-642-03236-3",
  pages =	"137--153",
  series =	"Lecture Notes in Computer Science",
  URL =  	"http://dx.doi.org/10.1007/978-3-642-03237-0",
}

@Misc{SafeMultiphaseBondsCheckEliminationInJava:2010,
    author = {Andreas Gampe and David Niedzielski and Jeffery Von Ronne and Kleanthis Psarris},
    title = {Safe, Multiphase Bounds Check Elimination in Java},
    year = {2010}
}

###############################################################################
# Documents that cover important auxiliary information!
###############################################################################

@Article{AFastAlgorithmForFindingDominatorsInAFlowGraph:1979,
  author =	"Thomas Lengauer and Robert E. Tarjan",
  title =	"A Fast Algorithm for Finding Dominators in a Flow
		 Graph",
  journal =	"ACM Transactions on Programming Languages and
		 Systems",
  volume =	"1",
  number =	"1",
  pages =	"121--141",
  month =	jul,
  year = 	"1979",
  reffrom =	"Touzeau:acm:cc:1984",
}

@Misc{ASImpleFastDominanceAlgorithm:2001,
  title =	"A Simple, Fast Dominance Algorithm",
  author =	"Keith D. Cooper and Timothy J. Harvey and Ken
		 Kennedy",
  year = 	"2001",
  month =	aug # "~12",
  abstract =	"This paper returns to a simple formulation of
		 dominance as a global data-flow problem. Some insights
		 into the nature of dominance lead to an implementation
		 of an O(N ) algorithm that runs faster, in practice,
		 than the classic Lengauer-Tarjan algorithm, which has a
		 timebound of O(E log(N)).Wecompare the algorithm to
		 Lengauer-Tarjan because it is the best known and most
		 widely used of the fast algorithms for dominance.
		 Working from the same implementation insights, we also
		 rederive (from earlier work on control dependence by
		 Ferrante, et al.)amethod Contract/grant sponsor: This
		 research was supported, in part, by Darpa through
		 Usafrl contract F30602-97-2-298, and the State of Texas
		 through its Advanced Technology Program, grant number
		 3604-0122-1999",
  citeseer-references = "oai:CiteSeerPSU:472597; oai:CiteSeerPSU:87236;
		 oai:CiteSeerPSU:87236; oai:CiteSeerPSU:106151;
		 oai:CiteSeerPSU:54768",
  annote =	"Keith D. Cooper (Rice University; Houston , TX); Ken
		 Kennedy (SUMMARY);",
  bibsource =	"OAI-PMH server at cs1.ist.psu.edu",
  language =	"en",
  oai =  	"oai:CiteSeerPSU:573270",
  rights =	"unrestricted",
  URL =  	"http://citeseer.ist.psu.edu/573270.html;
		 http://www.cs.rice.edu/~keith/EMBED/dom.pdf",
}



###############################################################################
# End
###############################################################################
